Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Commit fbbda8153ef0507b43d5b62433bdbbfe61baa162


Parents : 831e91a
Author : Mark Qvist <mark@unsigned.io>
Date : 2021-10-08T17:34:27+02:00

Fixed invalid mutation in peer sync

Changes

1 files changed, 8 insertions(+), 1 deletions(-)

M LXMF/LXMF.py +8 -1

Diff

diff --git a/LXMF/LXMF.py b/LXMF/LXMF.py
index 1f3dc82..b23189e 100644
--- a/LXMF/LXMF.py
+++ b/LXMF/LXMF.py
@@ -707,7 +707,8 @@ class LXMPeer:
else:
# Peer wants some advertised messages
- for transient_id in self.unhandled_messages:
+ peer_had_messages = []
+ for transient_id in self.unhandled_messages.copy():
# If the peer did not want the message, it has
# already received it from another peer.
if not transient_id in response:
@@ -742,6 +743,12 @@ class LXMPeer:
RNS.log("Error while handling offer response from peer "+str(self.destination), RNS.LOG_ERROR)
RNS.log("The contained exception was: "+str(e), RNS.LOG_ERROR)
+ if self.link != None:
+ self.link.teardown()
+
+ self.link = None
+ self.state = LXMPeer.IDLE
+
def resource_concluded(self, resource):
if resource.status == RNS.Resource.COMPLETE:


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────